The present patent disclosure relates to data transmission, more specifically, the present patent disclosure relates to forward error correction used in data transmission.
The transmission of information data bits may be made through various communication systems. Communication systems are typically designed to maximize performance given system constraints such as power, bandwidth and data rate. Any perturbation between a transmitter and a receiver of a communication system may adversely affect the signal and the information data bits carried in the signal. Hence, the received data bits may be corrupted due to various perturbations during the transmission.
There exist various schemes for providing reliable transportation of data across noisy channels of a communication system. These schemes can be grouped into two categories: error detection schemes and error correction schemes. Error detection is intended to describe the ability to detect the presence of errors caused by noise or other perturbations during transmission from the transmitter to the receiver; error correction is intended to describe the ability to reconstruct the original, error-free data.
Various error detection schemes exist and they are generally quite simple. Examples include: parity scheme, checksum, cyclic redundancy check (CRC), and hash function.
In general, there are two ways to design an error correcting scheme. In a communication system where a feedback is available, automatic repeat request (ARQ) schemes can be implemented. ARQ schemes typically operate with frames of information data, and use acknowledgments and timeouts to achieve reliable data transmission. The frames may include information bits and CRC bits, implemented with a cyclic code. A receiver uses the CRC bits to determine if any bit errors have occurred and, if so, requests a retransmission of the frame by sending a negative acknowledgment (NAK; i.e., an error indication) on the feedback channel. This is repeated until the frame is received without errors, in which case a positive acknowledgment (ACK) is sent. In many cases, the request may be implicit: the receiver sends an ACK of correctly received data, and the transmitter resends anything not acknowledged within a reasonable period of time.
The second error correcting scheme does not send any messages back to the transmitter. With forward error correction (FEC), the transmitter encodes the data with an error-correcting code (ECC) and sends the coded message. The receiver decodes what it receives into the “most likely” data. The codes are designed to increase the immunity of the transmitted signal to noise without increasing signal power, so that it would take an “unreasonable” amount of noise to trick the receiver into misinterpreting the data.
Hybrid ARQ (HARQ) systems combine FEC and ARQ in order to improve ARQ throughput performance. In pure ARQ systems, the probability of a frame being in error is a function of channel bit error rate and frame length. The redundant bits generated by a FEC code are incorporated into the frame-based retransmission approach of ARQ systems. By incorporating FEC, the frame error rate can be reduced significantly. This reduction in frame error rate accordingly reduces the number of retransmissions required and therefore improves throughput performance, but requires more complex transmitter and receiver designs to provide for FEC.
Advanced wireless systems, for example, Third Generation Partnership Project (3GPP) Long Term Evolution (LTE) systems are designed to deliver large amounts of data to the end user. To accomplish this, the amount of user data in a transport block within one radio subframe can be quite large; for example, a downlink radio subframe in 3GPP LTE could contain tens of thousands of bits.
Referring to FIG. 1, where a transport block 102 is large, for example, as in a 3GPP LTE system, the transport block is segmented into multiple code blocks 104, 106, 108, 110, 112, which is advantageous because of benefits such as enabling parallel processing or pipelining implementation and flexible trade off between power consumption and hardware complexity. An error detecting code, for example, CRC 114, 116, 118, 120, 122 is typically applied at the transmitter on a code block by code block basis to provide error protection during over-the-air transmission. For error correction, FEC 124, 126, 128, 130, 132 is then applied to each of the code blocks. The entire transport block may also have a CRC 134 which is calculated across all of the information bits of the entire transport block 102.
The prior art approach to decode the code blocks 104, 106, 108, 110, 112 at the receiver is simply to process them in the order they are received, as indicated by arrow 136 in FIG. 1. If an individual code block, i.e. 110 fails its CRC 118 check, then the transport block CRC 134 can also be assumed to fail and the decoding of any further code blocks within the same transport block can be terminated immediately in order to avoid unnecessary power consumption. However, several code blocks 104, 106, 108, 112 within the transport block 102 may have already been decoded prior to the first code block CRC failure occurring, and this decoding represents wasted effort and power.
In the event of an HARQ retransmission, additional computational expense may be incurred by not maximizing the expected number of successful code blocks processed during the current retransmission round, since those code blocks would not need to be processed (demapped, decoded, etc.) in the following retransmission. Both of these events represent power consumption, and battery drain, at the handset.
There is therefore a need for an improved method and system for decoding code blocks within a transport block.